const _url = require("url");
const get = require("./get");
const post = require("./post");

module.exports = function(path, ops){
    return (req, res, next)=>{
        // 将字符url解析成对象
        const url = _url.parse(req.url);
        // 将当前服务器接收到的请求地址，替换成目标真实地址
        const target = url.pathname.replace(path, ops.target);
        // /api/banner/json
        // https://www.wanandroid.com/banner/json

        // 区分请求方式
        if(req.method === "GET"){
            // 发起get请求：
                // 参数1：真实请求地址
                // 参数2：本次请求的配置信息
                    // cookie：要携带的cookie数据
                    // data：要发送的数据
            get(target, {
                cookie:req.cookies,
                data:req.query
            }).then(response=>{
                // get请求成功后
                // 将目标服务器返回的cookie数据，解析后，存储到本地
                response.cookie.forEach(val => {
                    res.cookie(val.key, val.value, { path: val.Path, expires: val.Expires })
                });
                // 解析数据，并返回给前端
                res.send(JSON.parse(response.data));
            })
        }else if(req.method === "POST"){
            post(target, {
                cookie:req.cookies,
                data: req.body
            }).then(response=>{
                response.cookie.forEach(val => {
                    res.cookie(val.key, val.value, { path: val.Path, expires: val.Expires })
                });
                res.send(JSON.parse(response.data));
            })
        }
    }
}